#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#define  STRUCT_OFFSET(id, element)  ((unsigned long)(&(( struct id*)0)->element))
struct MyStruct
{
	int a;
	char b;
};
//int main()
//{
//	std::cout << STRUCT_OFFSET(MyStruct, b) << std::endl;
//	/*struct MyStruct A = { 1,1 };
//	std::cout << STRUCT_OFFSET(MyStruct, a) << std::endl;*/
//	struct MyStruct* p = NULL;
//	
//	std::cout <<offsetof(struct MyStruct,a) << std::endl;
//	return 0;
////}
//class Partition {
//public:
//    ListNode* partition(ListNode* pHead, int x) {
//        if (pHead == nullptr)
//            return nullptr;
//        ListNode* lower = nullptr;
//        ListNode* ltail = lower;
//        ListNode* bigger = nullptr;
//        ListNode* btail = bigger;
//        while (pHead)
//        {
//            if (pHead->val < x)
//            {
//                if (lower == nullptr)
//                {
//                    lower = pHead;
//                    ltail = pHead;
//                }
//                else
//                {
//                    ltail->next = pHead;
//                    ltail = ltail->next;
//                }
//            }
//            else
//            {
//                if (bigger == nullptr)
//                {
//                    bigger = pHead;
//                    btail = pHead;
//                }
//                else
//                {
//                    btail->next = pHead;
//                    btail = btail->next;
//                }
//            }
//            pHead = pHead->next;
//        }
//        ltail->next = bigger;
//        btail->next = nullptr;
//        return lower;
//    }
//};
